// 引入axios库，用于发送HTTP请求
// import axios from 'axios'
import { setToken, clearToken } from "../../utils/auth"
import { http } from '../../utils/http'
// 定义登录函数，接收手机号码和验证码作为参数
export const login = (mobile, code) => {
    // 使用异步函数，返回一个dispatch函数
    return async dispatch => {
        // 发送POST请求到指定的API接口，实现用户登录
        const res = await http.post('/authorizations', {
            mobile, // 手机号码
            code    // 验证码
        })

        // 从响应数据中获取token
        const { token } = res.data
        // 将token存储到本地存储中，以便在浏览器关闭后仍然保持登录状态
        setToken(token)
        // 发送一个action到Redux store，更新token
        dispatch({ type: 'login/setToken', payload: token })
    }
}

// 发送请求获取用户信息
export const getUserInfo = () => {
    return async dispatch => {
        // 发送异步请求获取用户信息
        const data = await http.get('/user/profile')
            dispatch({ type: 'user/getUserInfo', payload: data.data.name })

    }

}

// 退出登录 清除token和用户信息
export const logout = () => {
    return dispatch => {
        clearToken()  // 调用清除localstore用户token的api
        // 发送actions清除用户信息
        dispatch({ type: 'login/setToken', payload: '' })
        dispatch({ type: 'user/getUserInfo', payload: '' })
    }
}